package cn.tedu.flower.manage.content.dao.persist.repository;

import cn.tedu.flower.manage.common.pojo.vo.PageData;
import cn.tedu.flower.manage.content.pojo.entity.Fadeback;
import cn.tedu.flower.manage.content.pojo.vo.FadebackListItemVO;
import cn.tedu.flower.manage.content.pojo.vo.FadebackStandardVO;

import java.util.Collection;
import java.util.List;

public interface IFadebackRepository {
    /**
     * 添加反馈信息
     * @param fadeback 封装了反馈信息的对象
     * @return 受影响的行数
     */
    int insert(Fadeback fadeback);
    /**
     * 根据id删除反馈信息
     * @param id 反馈信息的id
     * @return 受影响的行数
     */
    int deleteById(Long id);

    /**
     * 根据若干个id批量删除反馈信息
     * @param idList 若干反馈信息id的数组
     * @return 受影响的行数
     */
    int deleteByIds(Collection<Long> idList);

    /**
     * 根据id修改反馈信息
     * @param fadeback 包含id和修改反馈信息的对象
     * @return 受影响的行数
     */
    int update(Fadeback fadeback);
    /**
     * 统计反馈信息的数量
     * @return 反馈信息的数量
     */
    int count();

    /**
     * 根据id查询反馈信息详情
     * @param id 反馈信息的id
     * @return 反馈信息详情
     */
    FadebackStandardVO selectById(Long id);

    /**
     * 反馈信息详情
     * @param pageNum 页码
     * @param pageSize 每页记录数
     * @return 反馈信息列表
     */
    PageData<FadebackListItemVO> selectAll(Integer pageNum, Integer pageSize);
}
